package bio_nio_aio.bio.com_base.netcode;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

//URL:统一资源定位符，一个 URL的一个对象对应着互联网上的一个资源。
//我们可以通过 URL 的对象调用其相应的方法，将其资源 ”下载“
//http://localhost:8888/examples/HelloWorld.txt
public class TestURL {
	public static void main(String[] args) throws IOException {
		URL url = new URL("http://localhost:8888/examples/HelloWorld.txt");
		// 对应的方法直接查找API 即可
		/*
		 * System.out.println(url.getProtocol()); System.out.println(url.getHost());
		 * System.out.println(url.getPort()); System.out.println(url.getFile());
		 * System.out.println(url.getRef()); System.out.println(url.getQuery());
		 */
		// 如何将服务端的资源读取进来(从网上读取数据)
		InputStream is = url.openStream();// 获取一个输入流
		byte[] b = new byte[20];
		int len;
		while ((len = is.read(b)) != -1) {
			System.out.println(new String(b,0,len,"GBK"));
		}
		//如果既有数据的输入又有数据的输出,则考虑使用 URLConnection
		//资源的读入
		URLConnection uo = url.openConnection();
		InputStream isuo = uo.getInputStream();
		while ((len = isuo.read(b)) != -1) {
			System.out.println(new String(b,0,len,"GBK"));
		}
		//资源的输出
		//OutputStream os = uo.getOutputStream();
		//os.write("I am a handsome man!".getBytes());
		//os.close();
		is.close();
	}
}
